#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main()
{
	//用a,b,c,d,e表示5个人，1，2，3，4，5表示名次
	int a = 0;
	int b = 0;
	int c = 0;
	int d = 0;
	int e = 0;
	//不考虑名次的重复性，需要5层for循环才能遍历所有的情况
	for (a = 1; a <= 5; a++)
	{
		for (b = 1; b <= 5; b++)
		{
			for (c = 1; c <= 5; c++)
			{
				for (d = 1; d <= 5; d++)
				{
					for (e = 1; e <= 5; e++)
					{
						//每位选手都说对了一半，也就是命题的正确性，用逻辑判断总的结果为1
						if (((b == 2) + (a == 3) == 1) &&
							((b == 2) + (e == 4) == 1) &&
							((c == 1) + (d == 2) == 1) &&
							((c == 5) + (d == 3) == 1) &&
							((e == 4) + (a == 1) == 1) == 1)
						{
							//名次不能重复，各个名次只能出现一次，名次的加和是一个固定值
							//1+2+3+4+5=15  相加的话，可能会出现重复，改用相乘
							//1*2*3*4*5=120
							if (a * b * c * d * e == 120)
							{
								printf("a=%d b=%d c=%d d=%d e=%d\n", a, b, c, d, e);
							}
						
						}
					}
				}
			}
		}
	}
	return 0;
}


//猜凶手
//
//日本某地发生了一件谋杀案，警察通过排查确定杀人凶手必为4个嫌疑犯的一个。
//
//以下为4个嫌疑犯的供词:
//
//A说：不是我。a==1
//
//B说：是C。   c==0
//
//C说：是D。   d==0
//
//D说：C在胡说 d==1
//
//已知3个人说了真话，1个人说的是假话。
//
//现在请根据这些信息，写一个程序来确定到底谁是凶手。

int main()
{
	//假设a是凶手，在a是凶手的条件下，去验真a,b,c,d的话是否符合条件
	//同理，依次去遍历b,c,d
	char killer = '0';
	for (killer = 'a'; killer <= 'd'; killer++)
	{

	}
	return 0;
}